package com.book.utils;

import java.sql.*;
import java.util.ResourceBundle;

/**
 * 数据库工具类
 */
public class DbUtils {
    private static String driver;   // 驱动程序类
    private static String url;      // 访问数据库的 URL
    private static String user;     // 访问数据库的用户名
    private static String pwd;      // 访问数据库的密码

    // 静态块，加载配置文件
    static {
        try {
            ResourceBundle bundle = ResourceBundle.getBundle("db");
            driver = bundle.getString("jdbc.driver");
            url = bundle.getString("jdbc.url");
            user = bundle.getString("jdbc.user");
            pwd = bundle.getString("jdbc.pwd");

            // 加载驱动
            Class.forName(driver);
        } catch (Exception e) {
            throw new RuntimeException("数据库配置加载失败！", e);
        }
    }

    /**
     * 获取数据库连接
     */
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url, user, pwd);
    }

    /**
     * 关闭数据库资源
     */
    public static void close(ResultSet rs, Statement stmt, Connection conn) {
        try {
            if (rs != null) rs.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            if (stmt != null) stmt.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            if (conn != null) conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

